config MSM_KGSL
	tristate "MSM 3D Graphics driver"
	default n
	depends on ARCH_MSM && !ARCH_MSM7X00A && !ARCH_MSM7X25
	select GENERIC_ALLOCATOR
	select FW_LOADER
	select PM_DEVFREQ
	select DEVFREQ_GOV_SIMPLE_ONDEMAND
	select DEVFREQ_GOV_PERFORMANCE
	select DEVFREQ_GOV_MSM_ADRENO_TZ
	---help---
	  3D graphics driver. Required to use hardware accelerated
	  OpenGL ES 2.0 and 1.1.

config MSM_KGSL_CFF_DUMP
	bool "Enable KGSL Common File Format (CFF) Dump Feature [Use with caution]"
	default n
	depends on MSM_KGSL
	select RELAY
	---help---
	  This is an analysis and diagnostic feature only, and should only be
	  turned on during KGSL GPU diagnostics and will slow down the KGSL
	  performance sigificantly, hence *do not use in production builds*.
	  When enabled, CFF Dump is on at boot. It can be turned off at runtime
	  via 'echo 0 > /d/kgsl/cff_dump'.  The log can be captured via
	  /d/kgsl-cff/cpu[0|1].

config MSM_KGSL_CFF_DUMP_NO_CONTEXT_MEM_DUMP
	bool "When selected will disable KGSL CFF Dump for context switches"
	default n
	depends on MSM_KGSL_CFF_DUMP
	---help---
	  Dumping all the memory for every context switch can produce quite
	  huge log files, to reduce this, turn this feature on.

config MSM_KGSL_PSTMRTMDMP_CP_STAT_NO_DETAIL
	bool "Disable human readable CP_STAT fields in post-mortem dump"
	default n
	depends on MSM_KGSL
	---help---
	  For a more compact kernel log the human readable output of
	  CP_STAT can be turned off with this option.

config MSM_KGSL_PSTMRTMDMP_NO_IB_DUMP
	bool "Disable dumping current IB1 and IB2 in post-mortem dump"
	default n
	depends on MSM_KGSL
	---help---
	  For a more compact kernel log the IB1 and IB2 embedded dump
	  can be turned off with this option.  Some IB dumps take up
	  so much space that vital other information gets cut from the
	  post-mortem dump.

config MSM_KGSL_PSTMRTMDMP_RB_HEX
	bool "Use hex version for ring-buffer in post-mortem dump"
	default n
	depends on MSM_KGSL
	---help---
	  Use hex version for the ring-buffer in the post-mortem dump, instead
	  of the human readable version.

config MSM_KGSL_2D
	tristate "MSM 2D graphics driver. Required for OpenVG"
	default y
	depends on MSM_KGSL && !ARCH_MSM7X27 && !ARCH_MSM7X27A && !(ARCH_QSD8X50 && !MSM_SOC_REV_A)

config MSM_ADRENO_DEFAULT_GOVERNOR
	string "devfreq governor for the adreno core"
	default "msm-adreno-tz" if DEVFREQ_GOV_MSM_ADRENO_TZ
	default "simple_ondemand"
	depends on MSM_KGSL

config MSM_Z180_DEFAULT_GOVERNOR
	string "devfreq governor for the z180 core(s)"
	default "performance"
	depends on MSM_KGSL_2D

config MSM_KGSL_DRM
	bool "Build a DRM interface for the MSM_KGSL driver"
	depends on MSM_KGSL && DRM

config KGSL_PER_PROCESS_PAGE_TABLE
	bool "Enable Per Process page tables for the KGSL driver"
	default n
	depends on !MSM_KGSL_DRM
	---help---
	  The MMU will use per process pagetables when enabled.

config MSM_KGSL_PAGE_TABLE_SIZE
	hex "Size of pagetables"
	default 0xFFF0000
	---help---
	  Sets the pagetable size used by the MMU.  The max value
	  is 0xFFF0000 or (256M - 64K).

config MSM_KGSL_PAGE_TABLE_COUNT
	int "Minimum of concurrent pagetables to support"
	default 8
	depends on KGSL_PER_PROCESS_PAGE_TABLE
	---help---
	  Specify the number of pagetables to allocate at init time
	  This is the number of concurrent processes that are guaranteed to
	  to run at any time.  Additional processes can be created dynamically
	  assuming there is enough contiguous memory to allocate the pagetable.

config MSM_KGSL_MMU_PAGE_FAULT
	bool "Force the GPU MMU to page fault for unmapped regions"
	default y

config MSM_KGSL_DISABLE_SHADOW_WRITES
	bool "Disable register shadow writes for context switches"
	default n
	depends on MSM_KGSL
